Like every open-source project, Django Compressor is always looking for motivated individuals to contribute to it’s source code. However, to ensure the highest code quality and keep the repository nice and tidy, everybody has to follow a few rules (nothing major, I promise :) )
People interested in developing for the Django Compressor should head over to #django-compressor on the freenode IRC network for help and to discuss the development.
You may also be interested in following @jezdez on Twitter.
Here’s what the contribution process looks like, in a bullet-points fashion, and only for the stuff we host on github:
If you’re interested in developing a new feature for Compressor, it is recommended that you first discuss it on IRC not to do any work that will not get merged in anyway.
Since it’s hosted on github, Django Compressor uses git as a version control system.
The github help is very well written and will get you started on using git and github in a jiffy. It is an invaluable resource for newbies and old timers alike.
We try to conform to PEP8 as much as possible. A few highlights:
This is how you fix a bug or add a feature:
Having a wide and comprehensive library of unit-tests and integration tests is of exceeding importance. Contributing tests is widely regarded as a very prestigious contribution (you’re making everybody’s future work much easier by doing so). Good karma for you. Cookie points. Maybe even a beer if we meet in person :)
Generally tests should be:
In a similar way to code, pull requests will be reviewed before pulling (obviously), and we encourage discussion via code review (everybody learns something this way) or IRC discussions.
To run the tests simply install tox, change your working directory to the tests directory and run tox in your shell. This will run the tests in Python 2.5, 2.6 and 2.7 (if appropriate binaries are found on the PATH) with Django 1.2.X and 1.3.X. The docs will be automatically built, too. If you only want to run a specific environment, pass the -e option to tox, e.g. tox -e py25. For more information see the tox docs. An example:
$ sudo pip install https://bitbucket.org/hpk42/tox/get/tip.zip
...
$ cd path/to/my/django_compressor
$ tox
Perhaps considered “boring” by hard-core coders, documentation is sometimes even more important than code! This is what brings fresh blood to a project, and serves as a reference for old timers. On top of this, documentation is the one area where less technical people can help most - you just need to write a semi-decent English. People need to understand you.
Documentation should be:
Pulling of documentation is pretty fast and painless. Usually somebody goes over your text and merges it, since there are no “breaks” and that github parses rst files automagically it’s really convenient to work with.
Also, contributing to the documentation will earn you great respect from the core developers. You get good karma just like a test contributor, but you get double cookie points. Seriously. You rock.
Note
This very document is based on the contributing docs of the django CMS project. Many thanks for allowing us to steal it!